def f(a,b,c,d,x):
    return a*x**3+b*x**2+c*x+d
def result(a,b,c,d,tol=1e-4):
    rs=[(0,3),(3,7),(7,10)]
    number=[]
    for r in rs:
     l,h=r
     while h - l >= 1e-5 :
          mid=(h+l)/2
          #print(mid)
          if f(a,b,c,d,mid)==0:
                number.append(mid)
                break
          if h - l < 1e-4 and (f(a,b,c,d,l)*f(a,b,c,d,mid)<0 or  f(a,b,c,d,h)*f(a,b,c,d,mid)):
            number.append(round(mid,4))
            break
          elif f(a,b,c,d,l)*f(a,b,c,d,mid)<0:
                h=mid
          else :
                l=mid
    return number
result(a=1,b=-14,c=56,d=-64)
